#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
//bool backspaceCompare(char* S, char* T) {
//    int i = strlen(S) - 1, j = strlen(T) - 1;
//    int skipS = 0, skipT = 0;
//
//    while (i >= 0 || j >= 0) {
//        while (i >= 0) {
//            if (S[i] == '#') {
//                skipS++, i--;
//            }
//            else if (skipS > 0) {
//                skipS--, i--;
//            }
//            else {
//                break;
//            }
//        }
//        while (j >= 0) {
//            if (T[j] == '#') {
//                skipT++, j--;
//            }
//            else if (skipT > 0) {
//                skipT--, j--;
//            }
//            else {
//                break;
//            }
//        }
//        if (i >= 0 && j >= 0) {
//            if (S[i] != T[j]) {
//                return false;
//            }
//        }
//        else {
//            if (i >= 0 || j >= 0) {
//                return false;
//            }
//        }
//        i--, j--;
//    }
//    return true;
//}
bool backspaceCompare(char* s, char* t)
{
	int sz1 = strlen(s);
	int sz2 = strlen(t);
	int i = sz1 - 1;
	int j = sz2 - 1;
	int num1, num2;
	num1 = num2 = 0;
	while (i >= 0 && j >= 0)
	{
		if (*(s + i) == '#')
		{
			num1++;
			i--;
		}
		else
		{
			if (num1 > 0)
			{
				i--;
				num1--;
			}
		}

		if (*(t + j) == '#')
		{
			num2++;
			j--;
		}
		else
		{
			if (num2 > 0)
			{
				j--;
				num2--;
			}
		}

		if (num1 == 0 && num2 == 0)
		{
			if (i >= 0 && j >= 0 && *(s + i) != *(t + j))
			{
				return false;
			}
			else if (i < 0 || j < 0)
			{
				break;
			}
			i--;
			j--;
		}
	}
}
int main()
{
    char a[] = "a#b#c";
    char b[] = "#b#c#a";
    int ret = backspaceCompare(a,b);
    printf("%d", ret);
    return 0;
}